﻿#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include "common.h"

//ThreadCache仅管理256kb以下的空间
class ThreadCache
{
public:
	//申请内存接口
	void* makeAllocate(size_t size);
	//回收内存接口
	void destoryAllocate(void* ptr, size_t size);
	//向下一层申请内存接口
	void* fetchFromCentralCache(size_t index, size_t alignNum);
private:
	FreeList _freeLists[LISTNUMS];

	std::unordered_map<void*, int> _ptrToIndex; // 构建地址到对应自由链表的映射
};

//线程本地存储--tls
static __declspec(thread) ThreadCache* pTlsThreadCache = nullptr;